package br.com.abelha.manager;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import br.com.abelha.manager.db.DAOFichaB;
import br.com.abelha.manager.entity.FichaBCrianca;
import br.com.abelha.manager.entity.Pessoa;

public class FichaCCrianca extends Activity {

	EditText pesoCrianca,idadeCrianca;
	RadioButton radioAleitamento, radioDiarreia, radioTro, radioOutrosAlimentos;
	TextView dataConsulta;
	private int year, month, day;
	
	Pessoa pessoa;

	Button pickDate;
	Button salvar, cancelar;
	private OnClickListener listenerSalvar = new OnClickListener() {
		public void onClick(View v) {
			
			if(!camposNulosENaoPreenchidos()){
				salvarFichaCrianca();
				AlertDialog.Builder builder = new AlertDialog.Builder(FichaCCrianca.this);
		    	builder.setTitle("PFS");
		    	builder.setMessage("Ficha Criança Salva com sucesso");
		    	builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {  
				      public void onClick(DialogInterface dialog, int which) {  
				       retorneAEscolha();
				    } });
		    	
		    	builder.show();
				
				
			}else{
				exibirMensagem("PFS", "Favor preencher todos os campos");
			}
		}

	};
	private OnClickListener listenerCancelar = new OnClickListener() {
		public void onClick(View v) {
			Intent i = new Intent(FichaCCrianca.this, MenuFichas.class);
	 		startActivity(i);
		}

	};
	
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.fichac);

		pesoCrianca = (EditText) findViewById(R.id.edit_peso);
		idadeCrianca = (EditText) findViewById(R.id.edit_idade);
		
		pessoa = (Pessoa) getIntent().getSerializableExtra("br.com.abelha.manager.entity.Pessoa");
		
		dataConsulta = (TextView) findViewById(R.id.id_date_consulta);
		
		radioOutrosAlimentos = (RadioButton) findViewById(R.id.outros_1);
		radioTro = (RadioButton) findViewById(R.id.tro_1);
		radioDiarreia = (RadioButton) findViewById(R.id.diarreia_1);
		radioAleitamento = (RadioButton) findViewById(R.id.aleitamento_1);

		final Calendar cal = Calendar.getInstance();
		year = cal.get(Calendar.YEAR);
		month = cal.get(Calendar.MONTH);
		day = cal.get(Calendar.DAY_OF_MONTH);
		
		dataConsulta.setText(new StringBuilder().append(day).append('-')
				.append(month + 1).append('-').append(year));
		
		salvar = (Button) findViewById(R.id.Button_Save);
		cancelar = (Button) findViewById(R.id.Button_Cancelar);

		salvar.setOnClickListener(listenerSalvar);
		cancelar.setOnClickListener(listenerCancelar);

		pickDate = (Button) findViewById(R.id.id_date_consulta_button);
		pickDate.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				showDialog(1);
			}

		});

	}
	
	public boolean camposNulosENaoPreenchidos(){
		
		if(pesoCrianca.getText().toString().equals(null) || 
				pesoCrianca.getText().toString().equals("") ){
			return true;
		}
		
		if(idadeCrianca.getText().toString().equals(null) ||
				idadeCrianca.getText().toString().equals("")){
			return true;
		}
		
		return false;
	}
	
	protected void retorneAEscolha() {
		Intent i = new Intent(FichaCCrianca.this, MenuFichas.class);
 		startActivity(i);
		
	}

	public void exibirMensagem(String titulo, String mensagem){
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
    	builder.setTitle(titulo);
    	builder.setMessage(mensagem);
    	builder.setNeutralButton("OK", null);
    	builder.show();
	}

	protected void salvarFichaCrianca() {

		DAOFichaB<FichaBCrianca> daoFichaB = new DAOFichaB<FichaBCrianca>(this);
		FichaBCrianca fichaBCrianca = new FichaBCrianca();
		
		try {
			
			fichaBCrianca.setId_fichaA(pessoa.getId_fichaA());
			fichaBCrianca.setId_paciente(pessoa.getId());
			
			String aleitamento = "Nao";
			if(radioAleitamento.isChecked()){
				aleitamento = "Sim";
			}
			
			fichaBCrianca.setAleitamento(aleitamento);
			fichaBCrianca.setData_consulta(dataConsulta.getText().toString());
			
			String diarreia = "Nao";
			if(radioDiarreia.isChecked()){
				diarreia = "Sim";
			}
			
			fichaBCrianca.setDiarreia(diarreia);
			
			String diarreia_tro = "Nao";
			if(radioTro.isChecked()){
				diarreia_tro = "Sim";
			}
			
			fichaBCrianca.setDiarreia_tro(diarreia_tro);
			fichaBCrianca.setIdade(idadeCrianca.getText().toString());
			
			String outros_tipo_alimento = "Nao";
			if(radioOutrosAlimentos.isChecked()){
				outros_tipo_alimento = "Sim";
			}
			
			fichaBCrianca.setOutros_tipo_alimento(outros_tipo_alimento);
			fichaBCrianca.setPeso(pesoCrianca.getText().toString());
			
			daoFichaB.delete(fichaBCrianca);
			daoFichaB.insert(fichaBCrianca);
			
			/**
			 *  
			 *  Teste de Busca de fichaBCrianca
			 *   
			 * 	fichaBCrianca.setId(1);
			 *	daoFichaB.get(fichaBCrianca);
			 *	System.out.println(fichaBCrianca);
			 *
			 */
			
			
		} catch (Throwable e) {
			e.printStackTrace();
		}
		
		
	}

	protected Dialog onCreateDialog(int id) {
		switch (id) {
		case 1:
			return new DatePickerDialog(this, dateListener, year, month, day);

		}
		return null;

	}

	private DatePickerDialog.OnDateSetListener dateListener = new DatePickerDialog.OnDateSetListener() {

		@Override
		public void onDateSet(DatePicker view, int yr, int monthOfYear,
				int dayOfMonth) {
			year = yr;
			month = monthOfYear;
			day = dayOfMonth;
			updateDate();
		}
	};

	private void updateDate() {
		dataConsulta.setText(new StringBuilder().append(day).append('-')
				.append(month + 1).append('-').append(year));

	}
}
